/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package br.com.pangalacteos.modelo;

import java.io.Serializable;
import java.util.Collection;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;

/**
 *
 * @author Leandro Del Sole
 */
@Entity
@Table(name = "fornecedor")
@NamedQueries({@NamedQuery(name = "Fornecedor.findByCdfornecedor", query = "SELECT f FROM Fornecedor f WHERE f.cdfornecedor = :cdfornecedor"), @NamedQuery(name = "Fornecedor.findByCdcnpj", query = "SELECT f FROM Fornecedor f WHERE f.cdcnpj = :cdcnpj"), @NamedQuery(name = "Fornecedor.findByNmfornecedor", query = "SELECT f FROM Fornecedor f WHERE f.nmfornecedor = :nmfornecedor"), @NamedQuery(name = "Fornecedor.findByNmendereco", query = "SELECT f FROM Fornecedor f WHERE f.nmendereco = :nmendereco"), @NamedQuery(name = "Fornecedor.findByCdnumero", query = "SELECT f FROM Fornecedor f WHERE f.cdnumero = :cdnumero"), @NamedQuery(name = "Fornecedor.findByCdcep", query = "SELECT f FROM Fornecedor f WHERE f.cdcep = :cdcep"), @NamedQuery(name = "Fornecedor.findByNmcidade", query = "SELECT f FROM Fornecedor f WHERE f.nmcidade = :nmcidade"), @NamedQuery(name = "Fornecedor.findByCduf", query = "SELECT f FROM Fornecedor f WHERE f.cduf = :cduf"), @NamedQuery(name = "Fornecedor.findByNmpais", query = "SELECT f FROM Fornecedor f WHERE f.nmpais = :nmpais"), @NamedQuery(name = "Fornecedor.findByCdtelefone", query = "SELECT f FROM Fornecedor f WHERE f.cdtelefone = :cdtelefone")})
public class Fornecedor implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue
    @Column(name = "cdfornecedor", columnDefinition="Integer", nullable = false)
    private Integer cdfornecedor;
    @Column(name = "cdcnpj", columnDefinition="String", nullable = false)
    private String cdcnpj;
    @Column(name = "nmfornecedor", columnDefinition="String", nullable = false)
    private String nmfornecedor;
    @Column(name = "nmendereco", columnDefinition="String")
    private String nmendereco;
    @Column(name = "cdnumero", columnDefinition="Integer")
    private Integer cdnumero;
    @Column(name = "cdcep", columnDefinition="String")
    private String cdcep;
    @Column(name = "nmcidade", columnDefinition="String")
    private String nmcidade;
    @Column(name = "cduf", columnDefinition="String")
    private String cduf;
    @Column(name = "nmpais", columnDefinition="String")
    private String nmpais;
    @Column(name = "cdtelefone", columnDefinition="String")
    private String cdtelefone;
    @OneToMany(cascade = CascadeType.PERSIST, mappedBy = "cdfornecedor")
    private Collection<Fatura> faturaCollection;

    public Fornecedor() {
    }

    public Fornecedor(Integer cdfornecedor) {
        this.cdfornecedor = cdfornecedor;
    }

    public Fornecedor(Integer cdfornecedor, String cdcnpj, String nmfornecedor) {
        this.cdfornecedor = cdfornecedor;
        this.cdcnpj = cdcnpj;
        this.nmfornecedor = nmfornecedor;
    }

    public Integer getCdfornecedor() {
        return cdfornecedor;
    }

    public void setCdfornecedor(Integer cdfornecedor) {
        this.cdfornecedor = cdfornecedor;
    }

    public String getCdcnpj() {
        return cdcnpj;
    }

    public void setCdcnpj(String cdcnpj) {
        this.cdcnpj = cdcnpj;
    }

    public String getNmfornecedor() {
        return nmfornecedor;
    }

    public void setNmfornecedor(String nmfornecedor) {
        this.nmfornecedor = nmfornecedor;
    }

    public String getNmendereco() {
        return nmendereco;
    }

    public void setNmendereco(String nmendereco) {
        this.nmendereco = nmendereco;
    }

    public Integer getCdnumero() {
        return cdnumero;
    }

    public void setCdnumero(Integer cdnumero) {
        this.cdnumero = cdnumero;
    }

    public String getCdcep() {
        return cdcep;
    }

    public void setCdcep(String cdcep) {
        this.cdcep = cdcep;
    }

    public String getNmcidade() {
        return nmcidade;
    }

    public void setNmcidade(String nmcidade) {
        this.nmcidade = nmcidade;
    }

    public String getCduf() {
        return cduf;
    }

    public void setCduf(String cduf) {
        this.cduf = cduf;
    }

    public String getNmpais() {
        return nmpais;
    }

    public void setNmpais(String nmpais) {
        this.nmpais = nmpais;
    }

    public String getCdtelefone() {
        return cdtelefone;
    }

    public void setCdtelefone(String cdtelefone) {
        this.cdtelefone = cdtelefone;
    }

    public Collection<Fatura> getFaturaCollection() {
        return faturaCollection;
    }

    public void setFaturaCollection(Collection<Fatura> faturaCollection) {
        this.faturaCollection = faturaCollection;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (cdfornecedor != null ? cdfornecedor.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Fornecedor)) {
            return false;
        }
        Fornecedor other = (Fornecedor) object;
        if ((this.cdfornecedor == null && other.cdfornecedor != null) || (this.cdfornecedor != null && !this.cdfornecedor.equals(other.cdfornecedor))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "br.com.pangalacteos.modelo.Fornecedor[cdfornecedor=" + cdfornecedor + "]";
    }

}
